<html>
<head>
<title>The Memcached Guidebook</title>
</head>
<body>

<h1>The Memcached Guidebook</h1>

<h2>Introduction</h2>
<p>
  Memcached is essentially a scalable hashmap cache.  In simple terms, 
  it allows you to spread a memory based cache over multiple servers, and 
  retrieve data from it, instead of relying on a slower or more costly 
  database.
</p>

<h2>History of Memcached</h2> 
<p>
  It started out, written by the fellow at livejournal.  Since then it 
  has matured and is in use by some of the highest raking sites today 
  (such as facebook, flicker, dealnews, etc). 
</p>

<h2>Obtaining Memcached</h2>
Download memcahced from...

<h2>Legal use of Memcached</h2>
<p>Explain GPL, rights and limitations.</p>

<h2>The simple overview of how it works.</h2>
<ul>
  <li>Show the scenario of a single server.
  <li>Show a more common and useful scenario of a cluster.
  <li>Show an even more elaborate scenario of multiple clusters.
</ul>

<h2>Memcached is only part of the solution</h2>
<p>
  Developing and maintaining a high-volume service requires more than 
  merely putting memcached on the servers and hoping for the best.  It 
  will require a solution that can handle the volume of traffic you expect 
  to receive, as well as bursts of activity, and continue running if some 
  services fail.
</p>

<p>
  Thanks to caching systems like memcached, sites like rhokz.com, and others 
  can continue to function and serve users even in the event of a total 
  database failure.  Certain operations that required a database 
  connection will fail, but a lot of operations can continue without the user 
  even being aware that the site was not functioning completely.
</p>

<h2>The various clients.</h2>
<p>
  Since the text-based protocol is fairly simple, it has been marginally 
  trivial for developers to write memcached clients in almost every 
  language out there.  The most popular clients are probably the Java, 
  Perl, PHP and C clients.  
</p>

<h2>The Text and Binary protocols.</h2>

<h2>Special Problems and Solutions.</h2>

<h3>Atomic change of multiple keys.</h3>
<h3>Avoiding a Blast when a key expires</h3>
<h3>Writing a series of data, and retrieving them.</h3>
<h3>Using Memcached to log site activity</h3>
<h3>Using Memcached to log site statistics</h3>

<h2>Memcached in the future.</h2>

<h2>About the Author</h2>
<p>Clint Webb is the primary developer of the Rhokz.com website.  He lives in Australia with his wife and 5 children.</p>

<h2>More information</h2>
<ul>
  <li>Links to the main website.
  <li>Links to the wiki
</ul>


</body>
</html>
